//
//  ZHTJFaceSetManager.h
//  ZHTJFaceDemo
//
//  Created by thinkjoy on 2017/1/6.
//  Copyright © 2017年 杜瑞胜. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "ZHTJFaceSetModel.h"
#import "ZHTJFaceError.h"

@interface ZHTJFaceSetManager : NSObject

#pragma mark    创建faceSet
/**
 创建faceSet

 @param faceSetName faceSet名称(1-16位字母/数字/下划线/汉字,首位不能为下划线),同一用户下faceSetName必须唯一,不能重复;
 @param faceSetTag faceSet的自定义标记信息,默认为空
 @param faceSetParam faceSet的自定义标记信息,默认为空
 @param completionHandler 回调
 */
+ (void)tj_FaceSetCreatWithFaceSetName:(NSString *)faceSetName faceSetTag:(NSString *)faceSetTag faceSetParam:(NSString *)faceSetParam completionHandler:(void (^)(ZHTJFaceSetModel * faceSetMD, ZHTJFaceError *  error))completionHandler;

#pragma mark    删除faceSet
/**
 根据faceSetID删除faceSet

 @param faceSetID 已创建faceSet的ID
 @param check YES，删除前检测是否包含face，检测到存在face不删除；NO，删除前不检测，直接删除；默认为NO；
 @param completionHandler 回调
 */
+ (void)tj_FaceSetDeleteWithFaceSetID:(NSString *)faceSetID checkEmpty:(BOOL)check completionHandler:(void (^)(ZHTJFaceSetModel * faceSetMD, ZHTJFaceError *  error))completionHandler;

/**
 根据faceSetName删除faceSet
 
 @param faceSetName 已创建faceSet的名称
 @param check YES，删除前检测是否包含face，检测到存在face不删除；NO，删除前不检测，直接删除；默认为NO；
 @param completionHandler 回调
 */
+ (void)tj_FaceSetDeleteWithFaceSetName:(NSString *)faceSetName checkEmpty:(BOOL)check  completionHandler:(void (^)(ZHTJFaceSetModel * faceSetMD, ZHTJFaceError *  error))completionHandler;

#pragma mark    更新faceSet
/**
 根据faceSetName更新faceSet

 @param faceSetName 已创建faceSet的名称
 @param faceSetTag 标记信息,默认为空
 @param faceSetParam 标记信息,默认为空
 @param completionHandler 回调
 */
+ (void)tj_FaceSetUpdateWithFaceSetName:(NSString *)faceSetName  faceSetTag:(NSString *)faceSetTag faceSetParam:(NSString *)faceSetParam completionHandler:(void (^)(ZHTJFaceSetModel * faceSetMD, ZHTJFaceError *  error))completionHandler;

/**
 根据faceSetID更新faceSet
 
 @param faceSetID 已创建faceSet的ID
 @param faceSetTag 标记信息,默认为空
 @param faceSetParam 标记信息,默认为空
 @param completionHandler 回调
 */
+ (void)tj_FaceSetUpdateWithFaceSetID:(NSString *)faceSetID  faceSetTag:(NSString *)faceSetTag faceSetParam:(NSString *)faceSetParam completionHandler:(void (^)(ZHTJFaceSetModel * faceSetMD, ZHTJFaceError *  error))completionHandler;

#pragma mark    根据Tag查找faceSet
/**
 根据Tag查找faceSet

 @param faceSetTag faceSetd的标记信息
 @param start 控制从第几个FaceSet开始返回，默认为0；
 @param completionHandler 回调
 */
+ (void)tj_FaceSetQueryFaceSetsWithFaceSetTag:(NSString *)faceSetTag start:(NSUInteger)start completionHandler:(void (^)(NSArray<ZHTJFaceSetModel*> * faceSetMDAry, ZHTJFaceError *  error))completionHandler;

#pragma mark    获取faceSet的详细信息
/**
 通过faceSetName获得一个faceset的所有信息

 @param faceSetName 已创建faceSet的名称
 @param completionHandler 回调
 */
+ (void)tj_FaceSetReadFaceSetDetailWithFaceSetName:(NSString *)faceSetName completionHandler:(void (^)(ZHTJFaceSetDetailModel * faceSetDetailMD, ZHTJFaceError *  error))completionHandler;

/**
 通过faceSetID获得一个faceset的所有信息
 
 @param faceSetID 已创建faceSet的ID
 @param completionHandler 回调
 */
+ (void)tj_FaceSetReadFaceSetDetailWithFaceSetID:(NSString *)faceSetID completionHandler:(void (^)(ZHTJFaceSetDetailModel * faceSetDetailMD, ZHTJFaceError *  error))completionHandler;




@end
